package com.example.takeaway.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.takeaway.model.bo.DishItemSpecification;
import com.example.takeaway.model.vo.SpecificationVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 菜品规格表 Mapper 接口
 * </p>
 *
 * @author 邢晨旭
 * @since 2023-10-12
 */
public interface DishItemSpecificationMapper extends BaseMapper<DishItemSpecification> {

    /**
     * 根据规格id查询菜品数量
     *
     * @param id 规格id
     * @return 菜品数量
     */
    Integer countDishBySpecificationId(Long id);

    /**
     * 批量插入
     *
     * @param list 菜品规格关联
     */
    void insertBatch(@Param("list") List<DishItemSpecification> list);

    /**
     * 根据菜品id查询关联的菜品规格id
     *
     * @param id 菜品id
     * @return 菜品规格id
     */
    List<Long> querySpecificationIdsByDishId(Long id);

    /**
     * 根据菜品id和规格ids批量删除关联信息
     *
     * @param id     菜品id
     * @param delIds 规格id
     */
    void deleteBatchByDishIdAndSpecificationIds(@Param("dishId") Long id, @Param("ids") List<Long> delIds);

    /**
     * 根据菜品id查询关联的菜品规格信息
     * @param id 菜品id
     * @return 菜品规格信息
     */
    List<SpecificationVO> querySpecificationsByDishId(Long id);
}
